﻿using FangChanCrm.Services.Interface;
using FangChanCrmEF;
using FangChanCrmModel;
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace FangChanCrm.Services.Realization
{
    public class t_FangYuanXinXiBiaoService : It_FangYuanXinXiBiaoService
    {

        public readonly MyContext _Context;
        public t_FangYuanXinXiBiaoService(MyContext myContext)
        {
            _Context = myContext;
        }

        public int Add(t_FangYuanXinXiBiao fangyuanxinxibiao)
        {
            _Context.t_FangYuanXinXiBiao.Add(fangyuanxinxibiao);
            return _Context.SaveChanges();
        }

        public bool DelFangFa(int id)
        {
            _Context.t_FangYuanXinXiBiao.Remove(_Context.t_FangYuanXinXiBiao.Where(x => x.Id == id).ToList()[0]);
            return _Context.SaveChanges() > 0;
        }

        public List<t_FangYuanXinXiBiao> GetCeng(int xiaoquid, string LouHao)
        {
            return _Context.t_FangYuanXinXiBiao.Where(x => x.XiaoQuId == xiaoquid && x.LouHao == LouHao).DistinctBy(x => x.Ceng).OrderBy(x => x.Ceng).ToList();
        }

        public List<t_FangYuanXinXiBiao> GetFangWuBangDing(int XiaoQu, string LouHao, int ceng)
        {
            return _Context.t_FangYuanXinXiBiao.Where(x => x.XiaoQuId == XiaoQu && x.LouHao == LouHao && x.Ceng == ceng).ToList();
        }

        public List<t_FangYuanXinXiBiao> GetFangWuShuJu(int XiaoQu, string LouHao)
        {
            return _Context.t_FangYuanXinXiBiao.Where(x => x.XiaoQuId == XiaoQu && x.LouHao == LouHao).ToList();
        }

        public t_FangYuanXinXiBiao GetId(int id)
        {
            return _Context.t_FangYuanXinXiBiao.FirstOrDefault(x => x.Id == id);
        }

        public List<t_FangYuanXinXiBiao> GetList()
        {
            return _Context.t_FangYuanXinXiBiao.ToList();
        }

        public List<t_FangYuanXinXiBiao> GetLouHao(int xiaoquid)
        {
            return _Context.t_FangYuanXinXiBiao.Where(x => x.XiaoQuId == xiaoquid).DistinctBy(x => x.LouHao).ToList();
        }

        public bool GetShuJu(t_FangYuanXinXiBiao fangyuanxinxibiao)
        {
            List<t_FangYuanXinXiBiao> shuju = _Context.t_FangYuanXinXiBiao.Where(x => x.XiaoQuId == fangyuanxinxibiao.XiaoQuId && x.LouHao == fangyuanxinxibiao.LouHao && x.Ceng == fangyuanxinxibiao.Ceng && x.Men == fangyuanxinxibiao.Men).ToList();
            if (shuju.Count > 0)
            {
                return false;
            }
            else
            {
                return true;
            }
        }


    }
}
